This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.
Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter.
<!-- rnb-source-begin eyJkYXRhIjoiYGBgclxucGxvdChjYXJzKVxuYGBgIn0= -->
```r
plot(cars)
```
<!-- rnb-source-end -->
```r
plot(cars)
<!-- rnb-source-end -->
<!-- rnb-output-end -->
<!-- rnb-output-begin eyJkYXRhIjoiXG48IS0tIHJuYi1wbG90LWJlZ2luIGV5Sm9aV2xuYUhRaU9qUXpNaTQyTXpJNUxDSjNhV1IwYUNJNk56QXdMQ0prY0draU9pMHhMQ0p6YVhwbFgySmxhR0YyYVc5eUlqb3dMQ0pqYjI1a2FYUnBiMjV6SWpwYlhYMD0gLS0+XG5cbjxpbWcgc3JjPVxcZGF0YTppbWFnZS9wbmc7YmFzZTY0XG4ifQ== -->
<img src=:image/png;base64
<!-- rnb-output-end -->
<!-- rnb-output-begin eyJkYXRhIjoiXG48IS0tIHJuYi1wbG90LWJlZ2luIC0tPlxuXG48aW1nIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBcndBQUFHd0NBTUFBQUI4VGthWEFBQUFVVkJNVkVVQUFBQUFBRG9BQUdZQU9wQUFaclk2QUFBNkFEbzZBR1k2T2pvNmtOdG1BQUJtQURwbWtKQm10ditRT2dDUWtHYVF0cENRMi8rMlpnQzIvLy9ia0RyYi8vLy90bWIvMjVELy83Yi8vOXYvLy84c25RemxBQUFBQ1hCSVdYTUFBQTdEQUFBT3d3SEhiNmhrQUFBTm8wbEVRVlI0bk8zZFlVUGJPQlpHWVZPZ3U4MHV6SkttSWVULy85Q043WVRRRnB0STF0VzlyM3llRDdQc0RHTW42Um1oeU1IcWpvQ296dnNCQUxtSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0tJRjdLSUY3S0lGN0xTNG4xNzdnYmZmaG85SE9CMlNmSHV1aC9qRi92TEY0Q2ZsSGpmbnQrVDNkMy8rdnh3d0dJVzhSNDJUNWN2OXhNVEI2YlFXTXdrM2x0RzNvVERBWjh5aWZjMDV6MFB2Wk56WHVMRllqYnhuaVlPNDZSa1l0d2xYaFJnRkcvdHcyR05pQmV5ak9MZG5hWU13N1IzeDJvRGJwV3crRFYrZi9GdjdPM3VYazdUM29jajhlSjIzVEd4QzhPbHNyZm4wOXMxNHNXTnVnOS9UZmszU243ajhYcVJZbnYvNjQ5NDB5K09ZQzJDeFB0K2tXTDd3TWlMR3dXSjkzMnljTmhNZmE2TWVQR25HSFBlNnlXMnQyZml4YTFpckRaVVB4eldpSGdoaTNnaGkzZ2h5MmlkOTdxZXl4czJXTEVaZVNjWEdmSU9CM3pHYU5ydzl2eFE4bkRBSjZ6bXZQdnVhZmFmRXk4VzR3MGJaQkV2WkJFdlpCRXZaQkV2WkJFdlpCRXZaQkV2WkJFdlpCRXZaQkV2WkJFdlpCRXZaQkV2WkJFdlpCRXZaSm45SnNYc2I3QVJMd3F3MnBQaXEzM1lpQmVMc1JzUVpKbmU0dlRJUG13d3hNZ0xXVlp6WHZaaGd6bWoxUWIyWVlNOTFua2hpM2doaTRzVWtNVkZDc2hpcVF5eUtsK2tZQjgybE1QSUMxbGNwSUFzTGxKQUZ1dThrRVc4a0VXOGtFVzhrTVUrYkpERlBteVF4VDVza01VK2JBZ2o5Vk1EdkdGREZOMHhzUXZpUlJEZE1QS21oRUc4Q0dLWU15Uk5ISWdYUVhRZi9wcnliNVQ4UnBmRFFSOGpMMlF4NTRVdVZodWdpM1ZlckFieFFoYnhRaGJ4UWhieFFoYnhRaGJ4UWhieFFzRG5LOERFaS9nbXJyMFI3K3JvM2VWdzZ2Tm14THMyeVo4ZzhFZThHS1IvYXRaZjVYaTVyWDlVaXZIV25mTnlXLyt3Sk9PdHVkckF6YVVERTV6elRqRzYzUk43RDhlbHQ5b3doWkVYc3F6bXZOeldQME03WTJJZFJxc04zTlkvUTBPejBUcFk1dzFEY3gzQVUrVjQyWWR0R3ZHbU1vcDMyM1VQdzRXS3FYdEY4bWYwRitKTlpmU0c3VFRYM1hZUC9keVhOMnczWTg2YnlHNnBiSC8zY21TcExBbXpxVFIyRnluR3l4TmNwSUFaUnQ3VmFXZDhONTd6ZnJqV3R1QndLS2lobVRXckRTdlQwcG9HRnlsV2huZ3JuaGRsRVcvRjg2SXc1cnoxem92U1dHMm9kbDVnQ3ZGQ0Z2RkNGdkZDRnZGQ0Z2RWlESFlEZ3Fya0ZXamlSUkRwMS82SUYwRVFMeGJ3dmZaR3ZNam4vYWtINXJ6STVmOTVNMVlia01rLzNsVEVpN1BDOFZhWVFLZkhlL2pQeS9DL1U3OFhYUGk4cUtib25MZkdCRG8vM2gzeHRxYmdZRmxsRHBJYTcvWjZ0N0dKM3dzdWZGNUlDaG52ZGVTdGRGNUVrRHdtQjQyMzhua1JRTVlFTnVhY2Q3aDUzbTdtdnRGbHp3dC9XY05veU5XRzQvYisxK3ZqdzNIN01QUGQ3TVBXa3FncndCbHozczNUY2Q4OXpTNlZzUTliVTlxS2Qzc0tkMmFwak4yQUd1UDlxWWNKT2RPR2g4UG0vdGRoTXoxdFlCKzIxc1M4MTBQV0c3YnU3dVh0ZVdiS3k4aUxHbXlXeXRpSExVdk04UzB1bzNWZTltSExFSFJtR1JjWEtjS0krcDQrcnNSNEQ1c2ZsMEYxZWcxMzdpanN3emFKZUZNWmpiejlXdHJyWTlmZFRYME9naitqdnhCdktwdDRoM2Evdi95MmFMYmdjQ3ZCbkRkUjhyVGgrb04vZXRvd2JCMDRYajVtcVN3QnM2azBHU1B2dVB5MW41d1JqT1B0ZWEyWGl4UXdreDd2NWZMRTFKamE2MGZkSFNOdlREbmplOHlmQ1htZmJlak5mVERuc1BuMjg4Tk9na3ZPaThKeVp0WkJaK001SSs5NDBXdzcrNEhlL1Rndm5yeUdIUENsV0llY05ZMm82eUJaYzk1KzZOM056SGxMbmhkbHJUemVjY2xoMlM5U0JId2xRaXMzNS9TUHQvUnpLZm1OTG9kclhNazVwL2VjdCtDeGlGZUEvOGpuTy9MUEg2dmtON29jcm0xUjU1dzVpSGRsL09ObDVEVThYT084MTFtWjgxb2VyblZxOXl5ZlBScXJEYWpIZjlyeU9lSnRsZG90SHpNUWI2T0tUcE85NTl3VGlMZE5oUWZMVmo1VlZ2bTh5QkwxSjMxUnhOc21SdDZzYjNRNUhQN0VuRGZuRzEwT2g3K3cycER4alM2SGd5WGlOVDJja3Bqeng5N1VJeU5lMDhNSkNUcC9QTTQ5c3FDUG1YZ3JpenFLelQreW1EOHRpTGN5elhoakl0N0s0aVlTOTVGTklkN2FnczRmajVFZjJRVGlyUzdtL0xFWDk1Rjl6aWhlOW1HRFBadDQyWWN0TUxYeGRacEp2T3dHRkpqY3pIYWFTYnpzd3hhWDNwckNORWJlbFNIZXI3QVBXeTNURTlpSmYwSzhYMklmdGpveVBvN0FuTGZlZVRGamVoaWRHV0JaYmNnOUhmdXdsWlFWYnp0TTQzMTluTmpJcXZtWHRSTGlMZnlOeDVzMnZHcjhaYTFGN2lPNFJkbU12T2RGQmtaZWM4bXJEUzB4VzIzbzF4bUlGNWJNNXJ6YnV4ZmlUZVE5V0hxZlA1WGRHN1pkOTRONGszaFBVNzNQbjh4d3RhSGY5WjE0YitlOVFPQjkvblNXUzJWdno4U2J3RHNlNy9PbjR3cmJMWXBPQnFQZUhjSDcvT21JOXdaRko0TnhsMmE5ejUrTWVMOVdkRWlhTzVqM3UzM3Y4NmNpM3E5Vml4ZHBpUGRya2VPdGRJVXQ1cGhNdkRlb05PY3RlckM0ajdrYzRyMUYxRkdzMHFmS29rNTFpRmNaOFJiK1JwZkRyUlR4RnY1R2w4T3RGWFBlc3Qvb2NyalZZcldoNkRlNkhBNXJSTHpMclBvM0did1I3eUp4UDZpd0JzUzdSS1YzKy9nYzhTNUJ2SzZJOXhicEg4R2RpVGRubXN3RStqUEVlNE9jbWUza1B5bDZzSFVqM3EvTlRRRUszcVdST1VncTR2MWFwVXV0eEp1S2VMK1cxdzRqcnpuaXZVSE9sSk01cnozaXZVWDZtMzFXR3lvd2luZjErN0R4azc0Q20zZ2o3TVBtTzFnUmJ3VW04VWJZRGNoN211aDkvalV3aVRmQVBteitJeC9UVkhPdGpyeis4Y0tjMVp6WGV4ODIvM2hYOEpzTTNveFdHL3ozWWZPZWN4WTl2L2VUQ2FyZGRkNkdWaHY4ZjR6RVZEbmUxZXpEUnJ3VkdNVzc2ODUzUmQ4MXNaVlYwU3RzR2FjdmViQ0dHTDFodTNzNVRYc2ZqbzNFVy9TekRiVWV3QW9ZTHBXOVBaL2VyclVRNzl6QXQrcjdKbmd6dlVpeHZmL1ZlTHdNaVo1c0wxSnNId0xHbXp5SzhVSGJvSXptdk9ka0Q1dDRldzluREphem44MGxYamRtcXczanhPSHRPVnE4V2IxRjNjQm41ZHE5U0RGNzRsS25aODdyaVhnWEhvNWZmdkN6dW5ockRaYU15ZmJXRjIrZElaSFpjQVVyakxjSzRxMkFlRzBRYndYRWE0UTVyejNpdGNKcWd6bmloYXhROFhvUFZ0N25SNXBJOFhwUEU3M1BqMFNCNHZWK2crNTlmcVFpM2pEblJ5cmlEWE4rcEFvVXIvdWMwL3Y4U0JRcFh2ZDMrOTduUjVwUThRSXBpQmV5aUJleWlCZXlpQmV5Mm8yWHBZUG1OUnN2aTdidGF6VmVMcGV0QVBGQ1ZxaDRDMDVUaVhjRklzVmJkSnJLbkxkOWdlSXRQRml5MnRDOGR1TkY4NHppemRrNG0zaVJ4aWJldkkyem1hWWlpVW04dWR1M01rMUZDcE40cHpmT1hzMCtiS2dnMU1nTHBMQ2E4M3B2bkkwVk1GcHQ4Tjg0RyswTHRNNExwQ0ZleUhLTEYxak1LZDVFM2dPMTkvbmRINEQyK1lsMzFROUErL3pFdStvSG9IMSs0bDMxQTlBK1AvR3UrZ0ZvbjU5NFYvMEF0TTlQdkt0K0FOcm5KOTVWUHdEdDh4UHZxaCtBOXZtOUh6MlFqWGdoaTNnaGkzZ2hpM2doaTNnaGkzZ2hpM2doaTNnaGkzZ2hpM2doaTNnaGkzZ2h5eS9lOGU0N0QxNm5mLzNYY0t2QWZkZmR2VGcrQUtkWFlialI4bkRMTHA4WDRQMzhpNTYvWDd5djMzMmlHUjAydzMwdTk2Yy91TDFMdmVjSDRQTXF2RDJmbnZPdWI4Ym5CYmllZjlIejk0dDNQM2w3OVJvbkgrL3VQdDczY3Vzdy9KOGZnTk9yOFByWTN6Rng5KzJuMHd2d2Z2NWx6OTh2M3AzYmpHRzR5K1h3cWwxZlJLY0g0UHNxM0wyNHZRRG44eTk3L243eGJ2OTltWGE1R09NZGZtajVqSDdqV1QxZmhlMjNuNTR2UUgvK1pjL2ZMZDdEcHI5UDZ0YXQzdUVQYkp6dCtVeDZod2ZnK1NyME4xbDJmUUZPNTEvMi9KMlh5dndtdmpIaS9ldkxpdWUvdkY5emVnSDIxeldHM09mdkhPODQ1L0lRWk5vdzhIZ1Z4cHZiKzcwQUgyK3VuL3Y4dmVOMVd5L3pmY04yL0QzZStxL0NlVmN5dHhkZzkzR2ltL3Y4M2VJZFh6Ym5hWVBmVXRsdi8vWFVmeFV1dTR0NHZRQ1g4eTk3L282ckRmMHI1dnlHemZFaXhXVzF3ZVZWZUgyOG5OSG5CYmllZjlIemQ1dzJiTHV1ODVyeHZ2L1h2bk83UEh4K0FDNnZ3bTY4QTNuL3pGMWVnQS9uWC9MOCtXQU9aQkV2WkJFdlpCRXZaQkV2WkJFdlpCRXZaQkV2WkJFdlpCRXZaQkV2WkJFdlpCRXZaQkV2WkJFdlpCRXZaQkV2WkJFdlpCRXZaQkV2WkJFdlpCRXZaQkV2WkJFdlpCRXZaQkV2WkJFdlpCRnZBRTYzK3BOSHZBRVFieDdpRFlCNDh4Q3ZvZGZINGY2ZHI5Ly85M2plOG1iWGZmTEYzVC9FbTRWNDdReTMvZDUzVDZlR24vci9QWlY2cW5TNHNmTDdGLzEyVG51dld3U3JJMTQ3bDd2VmovY0IzOTMvT214K2pILzcvWXZ4dHZaYjRzMUN2SGJPMnd0Zk5sNjRleG5udHFmL2UvM2lmWE1CcENOZVE4UGU1aytYL2FKTzhZNTNzKytlM3IvWUVlOEN4R3ZzTkNXNHhudUo5UG9GOFM1QXZNWU9tNmR4enJ2dDU3eFA3Mzl6L09LOER4cnhaaUZlTzhPQU9teXQzdThYZFZsdEdONmUvZllGcXcyWmlOZlFmdHl1NmZYeHY0L24vWnI2NWQxaHB2RHhDOVo1TXhHdlBiOE5saHRIdlBhSTF3angyaU5lSThRTFdjUUxXY1FMV2NRTFdjUUxXY1FMV2NRTFdjUUxXY1FMV2NRTFdjUUxXY1FMV2NRTFdjUUxXY1FMV2NRTFdjUUxXY1FMV2NRTFdjUUxXY1FMV2Y4SEhPcWNBeGN5c2xZQUFBQUFTVVZPUks1Q1lJST1cIiAvPlxuXG48IS0tIHJuYi1wbG90LWVuZCAtLT5cbiJ9 -->
<!-- rnb-plot-begin -->
<img src="data:image/png;base64,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" />
<!-- rnb-plot-end -->
<!-- rnb-output-end -->
<!-- rnb-chunk-end -->
<!-- rnb-text-begin -->
<!-- rnb-text-end -->
<!-- rnb-chunk-begin -->
<!-- rnb-output-begin eyJkYXRhIjoiXG48IS0tIHJuYi1zb3VyY2UtYmVnaW4gZXlKa1lYUmhJam9pWUdCZ2NseHViR2xpY21GeWVTaDBhV1I1ZG1WeWMyVXBYRzVnWUdBaWZRPT0gLS0+XG5cbmBgYHJcbmxpYnJhcnkodGlkeXZlcnNlKVxuYGBgXG5cbjwhLS0gcm5iLXNvdXJjZS1lbmQgLS0+XG4ifQ== -->
<!-- rnb-source-begin eyJkYXRhIjoiYGBgclxubGlicmFyeSh0aWR5dmVyc2UpXG5gYGAifQ== -->
```r
library(tidyverse)
Warning: package ‘tidyverse’ was built under R version 4.3.3Warning: package ‘tibble’ was built under R version 4.3.3Warning: package ‘tidyr’ was built under R version 4.3.3Warning: package ‘readr’ was built under R version 4.3.3Warning: package ‘purrr’ was built under R version 4.3.3Warning: package ‘dplyr’ was built under R version 4.3.3Warning: package ‘stringr’ was built under R version 4.3.3Warning: package ‘forcats’ was built under R version 4.3.3Warning: package ‘lubridate’ was built under R version 4.3.3── Attaching core tidyverse packages ─────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.1.4 ✔ readr 2.1.5
✔ forcats 1.0.0 ✔ stringr 1.5.1
✔ ggplot2 4.0.0 ✔ tibble 3.2.1
✔ lubridate 1.9.4 ✔ tidyr 1.3.1
✔ purrr 1.0.4 ── Conflicts ───────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
library(dplyr)
library(palmerpenguins)
Warning: package ‘palmerpenguins’ was built under R version 4.3.3
library(nycflights13)
Warning: package ‘nycflights13’ was built under R version 4.3.3
library(ggplot2)
<!-- rnb-plot-begin eyJoZWlnaHQiOjQzMi42MzI5LCJ3aWR0aCI6NzAwLCJkcGkiOi0xLCJzaXplX2JlaGF2aW9yIjowLCJjb25kaXRpb25zIjpbWzEsIlx1MDAxYkcyO1x1MDAxYkgyO1dhcm5pbmdcdTAwMWJoOiBcdTAwMWJbMzg7NTsyNTNtUmVtb3ZlZCAyIHJvd3MgY29udGFpbmluZyBtaXNzaW5nIHZhbHVlcyBvciB2YWx1ZXMgb3V0c2lkZSB0aGUgc2NhbGUgcmFuZ2VcbihgZ2VvbV9wb2ludCgpYCkuXHUwMDFiWzM5bVx1MDAxYmdcbiJdXX0= -->
<img src=\data:image/png;base64
view(penguins)
<!-- rnb-frame-begin eyJtZXRhZGF0YSI6eyJjbGFzc2VzIjpbImRhdGEuZnJhbWUiXSwibnJvdyI6MzAsIm5jb2wiOjIsInN1bW1hcnkiOnsiRGVzY3JpcHRpb24iOlsiZGYgWzMwIMOXIDJdIl19fSwicmRmIjoiSDRzSUFBQUFBQUFBQm8xU1BVL0NRQmcrK29HaFVaUitBQzUxMVlFbWlvTUx5UTFHWENXYU1MRFVVa3BqYldzNXdPamk0c3lzcTg3TXpQZ2puSjJkWGRHNzZ4M1J4b0ZMM3ZEY3cvTzg5MzYwZGR5dUsyMEZBQ0FDU2M0QlVjWVF5QmZuSjdVakFDUUJYM0pBQWdYeWU0dEZHZ2FFTE9JdzRkWlV2L3RvVG1INTdQUFJuTFdnUHFNQVZ1T1hkNlZ4QTFWQUQxVFpYV2Q2MVNUQ0hXaHczNlN6K3pXZlFLMUJoY3U4SlhLTFgrRTZ5MXNockg0UGk0eXZzandhODVlYXhIZ0sxVGtoM3VBMnk2Y3pYNW1vT251d3pPb3lHRzh3WG1QdlZwL0llWWFWT2ozUVVHZ2kzUDhHNlpzT1piVVFWZ3h4dGZpemtIemdqdHhnZ05GV3VqL0tTZzVLQW81Umd2Wi80WU5NQnRrSjdBRlBzRXpic3gwVUpSZ3RzdkxRdm5hNVhPRHlzZXQ3ZmNRbFhoSU40NHl2a0VSamkzdkpCSVdIZEFGbUtoUy9NeVVvWFJ2WlZpL0Jsbi9LV0l0aTVFY2hUaWFRenpHZk1lZVNETEU1RE1uajNaclRINFpYdGNQTTMySWNldVJOdGpIQWFzeXhUWE1zcEZWSXZOWTg3OThOUFQ5MGVmK0JmZW55OFl0ZGQ4UmdFWStBVHNDS0V6L2swMUl3TzdCUWhHeHVVWndvNEF6dEhDeCtBSG5rN1MrakF3QUEifQ== -->
<div data-pagedtable=\false\>
<script data-pagedtable-source type=\application/json\>
{\columns\:[{\label\:[\weight\],\name\:[1],\type\:[\dbl\],\align\:[\right\]},{\label\:[\group\],\name\:[2],\type\:[\fctr\],\align\:[\left\]}],\data\:[{\1\:\4.17\,\2\:\ctrl\},{\1\:\5.58\,\2\:\ctrl\},{\1\:\5.18\,\2\:\ctrl\},{\1\:\6.11\,\2\:\ctrl\},{\1\:\4.50\,\2\:\ctrl\},{\1\:\4.61\,\2\:\ctrl\},{\1\:\5.17\,\2\:\ctrl\},{\1\:\4.53\,\2\:\ctrl\},{\1\:\5.33\,\2\:\ctrl\},{\1\:\5.14\,\2\:\ctrl\},{\1\:\4.81\,\2\:\trt1\},{\1\:\4.17\,\2\:\trt1\},{\1\:\4.41\,\2\:\trt1\},{\1\:\3.59\,\2\:\trt1\},{\1\:\5.87\,\2\:\trt1\},{\1\:\3.83\,\2\:\trt1\},{\1\:\6.03\,\2\:\trt1\},{\1\:\4.89\,\2\:\trt1\},{\1\:\4.32\,\2\:\trt1\},{\1\:\4.69\,\2\:\trt1\},{\1\:\6.31\,\2\:\trt2\},{\1\:\5.12\,\2\:\trt2\},{\1\:\5.54\,\2\:\trt2\},{\1\:\5.50\,\2\:\trt2\},{\1\:\5.37\,\2\:\trt2\},{\1\:\5.29\,\2\:\trt2\},{\1\:\4.92\,\2\:\trt2\},{\1\:\6.15\,\2\:\trt2\},{\1\:\5.80\,\2\:\trt2\},{\1\:\5.26\,\2\:\trt2\}],\options\:{\columns\:{\min\:{},\max\:[10],\total\:[2]},\rows\:{\min\:[10],\max\:[10],\total\:[30]},\pages\:{}}}
</script>
</div>
<!-- rnb-frame-end -->
<!-- rnb-plot-begin eyJoZWlnaHQiOjQzMi42MzI5LCJ3aWR0aCI6NzAwLCJkcGkiOi0xLCJzaXplX2JlaGF2aW9yIjowLCJjb25kaXRpb25zIjpbXX0= -->
<img src=\data:image/png;base64
glimpse(flights)
Rows: 336,776
Columns: 19
$ year <int> 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, …
$ month <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
$ day <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
$ dep_time <int> 517, 533, 542, 544, 554, 554, 555, 557, 557, 558, 558, 558, 558, 558, 559, 559, 559, 600, 600, 6…
$ sched_dep_time <int> 515, 529, 540, 545, 600, 558, 600, 600, 600, 600, 600, 600, 600, 600, 600, 559, 600, 600, 600, 6…
$ dep_delay <dbl> 2, 4, 2, -1, -6, -4, -5, -3, -3, -2, -2, -2, -2, -2, -1, 0, -1, 0, 0, 1, -8, -3, -4, -4, 0, 8, 1…
$ arr_time <int> 830, 850, 923, 1004, 812, 740, 913, 709, 838, 753, 849, 853, 924, 923, 941, 702, 854, 851, 837, …
$ sched_arr_time <int> 819, 830, 850, 1022, 837, 728, 854, 723, 846, 745, 851, 856, 917, 937, 910, 706, 902, 858, 825, …
$ arr_delay <dbl> 11, 20, 33, -18, -25, 12, 19, -14, -8, 8, -2, -3, 7, -14, 31, -4, -8, -7, 12, -6, -8, 16, -12, -…
$ carrier <chr> "UA", "UA", "AA", "B6", "DL", "UA", "B6", "EV", "B6", "AA", "B6", "B6", "UA", "UA", "AA", "B6", …
$ flight <int> 1545, 1714, 1141, 725, 461, 1696, 507, 5708, 79, 301, 49, 71, 194, 1124, 707, 1806, 1187, 371, 4…
$ tailnum <chr> "N14228", "N24211", "N619AA", "N804JB", "N668DN", "N39463", "N516JB", "N829AS", "N593JB", "N3ALA…
$ origin <chr> "EWR", "LGA", "JFK", "JFK", "LGA", "EWR", "EWR", "LGA", "JFK", "LGA", "JFK", "JFK", "JFK", "EWR"…
$ dest <chr> "IAH", "IAH", "MIA", "BQN", "ATL", "ORD", "FLL", "IAD", "MCO", "ORD", "PBI", "TPA", "LAX", "SFO"…
$ air_time <dbl> 227, 227, 160, 183, 116, 150, 158, 53, 140, 138, 149, 158, 345, 361, 257, 44, 337, 152, 134, 147…
$ distance <dbl> 1400, 1416, 1089, 1576, 762, 719, 1065, 229, 944, 733, 1028, 1005, 2475, 2565, 1389, 187, 2227, …
$ hour <dbl> 5, 5, 5, 5, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, …
$ minute <dbl> 15, 29, 40, 45, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 10, 5, 10, 10, 7, 0, 0, 10, 15…
$ time_hour <dttm> 2013-01-01 05:00:00, 2013-01-01 05:00:00, 2013-01-01 05:00:00, 2013-01-01 05:00:00, 2013-01-01 …
flights |>
filter(month == 1 & day == 1)
flights_houston <- flights |>
filter(dest %in% c("IAH", "HOU"))
```{r}
Error: attempt to use zero-length variable name
flights |>
mutate(speed = distance / air_time * 60,
.after = distance) |>
head()
flights |>
rename(dep_airport = origin,
arr_airport = dest)
select(year, month, day, contains("dep"))
head()
flights |>
select(!year:day)
head()
flights |>
group_by(month) |>
count()
flights |>
group_by(month) |>
summarize(avg_delay = mean(dep_delay))
flights |>
group_by(month) |>
summarize(avg_arr_delay = mean(arr_delay, na.rm = TRUE),
sd_arr_delay = sd(arr_delay, na.rm = TRUE),
number_delayed = sum(arr_delay > 0, na.rm = TRUE),
total = n(),
percentage = number_delayed/total * 100
) |>
ggplot(mapping = aes(x = month,
y = percentage))
`1number` <- 12
print(`1number`)
[1] 12
library(nycflights13)
summary <- flights |>
group_by(tailnum) |>
summarize(avg_arr_delay = mean(arr_delay, na.rm=TRUE), num_flights = n())
Error in exists(cacheKey, where = .rs.WorkingDataEnv, inherits = FALSE) :
invalid first argument
Error in assign(cacheKey, frame, .rs.CachedDataEnv) :
attempt to use zero-length variable name
summary
#| label: style-example
#| echo: TRUE
library(nycflights13)
summary <- flights |>
group_by(tailnum) |>
summarize(avg_arr_delay = mean(arr_delay, na.rm=TRUE), num_flights = n())
Error in exists(cacheKey, where = .rs.WorkingDataEnv, inherits = FALSE) :
invalid first argument
Error in assign(cacheKey, frame, .rs.CachedDataEnv) :
attempt to use zero-length variable name
summary
billboard_long <- billboard |>
pivot_longer(cols = wk1:wk76,
names_to = "week",
values_to = "rank")
billboard |>
filter(artist == "2 Pac") |>
select(wk10)
```{r}
Error: attempt to use zero-length variable name
mpg |>
ggplot(aes(y = hwy, x = displ, shape=manufacturer)) +
geom_point(color = "royalblue")
mpg |>
ggplot(aes(y=hwy, x=displ)) +
geom_point() +
geom_smooth()
mpg |>
ggplot(aes(y=hwy, x=displ, color=drv)) +
geom_point() +
geom_smooth()
mpg |>
ggplot(aes(y=hwy, x=displ)) +
geom_point(aes(color=drv)) +
geom_smooth()
mpg |>
ggplot(aes(x = class, fill = class)) +
geom_bar()
ggplot(mpg, aes(x=displ, y=hwy)) +
geom_point(aes(color = class)) +
geom_smooth(se=FALSE) +
labs(
x = "Engine displacement (L)",
y = "Highway fuel economy (mpg)",
color = "Car type",
title="Fuel efficiency generally decreases with engine size",
subtitle="Two seaters (sports cars) are an exception because of their light weight",
caption="Data from fueleconomy.gov"
)
label_info <- mpg |>
group_by(drv) |>
arrange(desc(displ)) |>
slice_head(n=1) |>
mutate(
drive_type = case_when(
drv == "f" ~ "front=wheel drive",
drv == "r" ~ "rear-wheel drive",
drv == "4" ~ "4-wheel drive"
)
) |>
select(displ, hwy, drv, drive_type)
ggplot(mpg, aes(x=displ, y=hwy, color = drv)) +
geom_point(alpha = 0.3) +
geom_smooth(se = FALSE) +
geom_text(
data = label_info,
aes(x = displ, y = hwy, label = drive_type),
fontface = "bold", size = 5,
hjust = "right", vjust="bottom"
) +
theme(legend.position = "none")
ggplot(mpg, aes(x=displ, y=hwy, color)) +
geom_point() +
annotate(
geom = "label", x = 3.5, y = 38,
label = str_wrap("LArger engine sizes tend to have lower fuel economy", width = 30),
hjust = "left", color = "red"
) +
annotate(
geom = "segment",
x = 3, y = 35
)
Error in `annotate()`:
! Problem while setting up geom.
ℹ Error occurred in the 3rd layer.
Caused by error in `compute_geom_1()`:
! `geom_segment()` requires the following missing aesthetics: xend or yend.
Run `]8;;x-r-run:rlang::last_trace()rlang::last_trace()]8;;` to see where the error occurred.
ggplot(mpg, aes(X=displ, y=hwy)) +
geom_point(aes(color=drv)) +
geom_smooth() +
cor_cardinates(xlim = 4, ylim=5)
Error in cor_cardinates(xlim = 4, ylim = 5) :
could not find function "cor_cardinates"
my_values <- c(1,3,5,NA,8,10)
mean(my_values)
[1] NA
mean(my_values, na.rm=TRUE)
[1] 5.4
is.na(my_values)
[1] FALSE FALSE FALSE TRUE FALSE FALSE
flights |> filter(is.na(dep_time))
flights |>
group_by(year, month, day) |>
summarize(
proportion_delayed = mean(dep_delay <= 60, na.rm=TRUE),
count_long_delay = sum(arr_delay <= 300, na.rm=TRUE),
.groups = "drop"
)
x <- c(-3:3, NA)
if_else(x > 0, "+ve", "-ve", "???")
[1] "-ve" "-ve" "-ve" "-ve" "+ve" "+ve" "+ve" "???"
case_when(
x == 0 ~ "0",
x < 0 ~ "-ve",
x > 0 ~ "+ve",
.default = "???"
)
[1] "-ve" "-ve" "-ve" "0" "+ve" "+ve" "+ve" "???"
({{ x }} - min({{ x }}, na.rm = TRUE)) / (max({{ x }}, na.rm=TRUE) = min({{ x }}, na.rm=TRUE))
Error: object 'x' not found
flights |> summarize(
across(c(dep_delay, arr_delay, air_time),
list(
median = \(x) median(x, na.rm=TRUE),
mean = \(x) mean(x, na.rm=TRUE),
)),
n=n()
)
Error in `summarize()`:
ℹ In argument: `across(...)`.
Caused by error in `list()`:
! argument 3 is empty
Run `]8;;x-r-run:rlang::last_trace()rlang::last_trace()]8;;` to see where the error occurred.
flights$carrier
flights[[10]]
flights[["carrier"]]
flights["carrier"]
animals <- c("giraffe", "zebra", "monkey")
for (name in animals) {
print(name)
}
for (i in seq_along(animals)) {
print(animals[[i]])
}